package com.jiangyg.mall.product.dto;

import com.jiangyg.mall.core.support.validation.constraints.IntAnyValue;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 类描述：sku信息
 *
 * @author jiangyg
 * @date 2021-11-13
 */
@Data
@NoArgsConstructor
@EqualsAndHashCode
public class SkuSaveDTO implements Serializable {

    private static final long serialVersionUID = -5622756271710915725L;

    /**
     * spuId
     */
    private Long spuId;

    /**
     * sku名称
     */
    @NotNull
    private String name;

    /**
     * 标题
     */
    @NotNull
    private String title;

    /**
     * 副标题
     */
    @NotNull
    private String subtitle;

    /**
     * 价格
     */
    private BigDecimal price;

    /**
     * 销量
     */
    private Long sales;

    /**
     * sku介绍描述
     */
    private String desct;

    /**
     * 满几件
     */
    private Integer fullcount;

    /**
     * 打几折
     */
    private BigDecimal discount;

    /**
     * 是否叠加其他优惠[0-不可叠加，1-可叠加]
     */
    @IntAnyValue({0, 1})
    private Integer countSuperposable;

    /**
     * 满多少
     */
    private BigDecimal fullPrice;

    /**
     * 减多少
     */
    private BigDecimal reducePrice;

    /**
     * 是否叠加其他优惠[0-不可叠加，1-可叠加]
     */
    @IntAnyValue({0, 1})
    private Integer priceSuperposable;

    /**
     * 销售属性
     */
    @NotNull
    private List<SkuAttrDTO> attrs;

    /**
     * sku图片集
     */
    @Valid
    @NotNull
    private List<SkuImagesDTO> images;

    /**
     * 会员价
     */
    private List<MemberPriceDTO> memberPrice;

}
